home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 25
/
Cream of the Crop 25.iso
/
bbs
/
pcsuni1.zip
/
VRS502.ZIP
/
VRS-M802.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1997-04-06
|
8KB
|
303 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
;------------------------------------------------------------------------------
Goto LABEL001
End
If (0 == 0) STRING001 = "NO"
If (0 == 1) STRING001 = "YES"
EndFunc
:LABEL001
STRING002 = String(PcbNode())
If (PcbNode() == 0) STRING002 = "A"
STRING005 = GetEnv(STRING002 + "RECNO")
STRING005 = ToInteger(STRING005)
STRING003 = String(Random(1000)) + "X" + STRING002
DCloseAll
DOpen 0, PPEPath() + "USER.DBF", 0
DOpen 2, PPEPath() + "ARMOR.DBF", 0
DnCreate 2, PPEPath() + STRING003 + ".NDX", "NUMBER"
DGo 0, STRING005
INTEGER001 = DRecNo(0)
If (DGet(0, "ARMOR_N") > 0) Then
DTop 2
DSeek 2, DGet(0, "ARMOR_N")
INTEGER002 = DGet(2, "DEFENSE") - DGet(0, "ARMOR_D")
Endif
:LABEL002
Cls
Newline
PrintLn "@X0C ─╥─ ╖ ╓ ╥─╖ ╥─╖ ╓─╖ ╥─╖ ╖ ╖ ╓─╖ ╖ ╓ ╓─╖ ╥─╖@X07"
PrintLn "@X0C ║ ╟─╢ ╟─ ╟─╢ ║ ║ ║ ║ ╙─╢ ╙─╖ ╟─╢ ║ ║ ╟─╜@X07"
PrintLn "@X0C ╨ ╜ ╙ ╨─╜ ╨─╜ ╙─╜ ╨─╜ ──╜ ╙─╜ ╜ ╙ ╙─╜ ╨ @X07"
Newline
PrintLn "@X01 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡@X0F"
Newline
PrintLn "@X0E Be sure to check out our new Armor section, where we not only@X0F"
PrintLn "@X0E carry every type of armor from Life Pod Survival Suits (LPSS Level 2)@X0F"
PrintLn "@X0E to Open-Air powered armor, the BEST Armor the Imperium will allows to@X0F"
PrintLn "@X0E be sold legally, but offer full repair services for your current armor.@X0F"
Newline
PrintLn "@X01 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡@X0F"
Newline
If (DGet(0, "ARMOR_N") == 0) PrintLn " @X0EYou are currently wearing: @X0BNo Armor@X0F"
If (DGet(0, "ARMOR_N") > 0) PrintLn " @X0EYou are currently wearing: @X0B", Trim(DGet(0, "ARMOR_T"), " ") , " Armor@X0F"
Newline
PrintLn "@X0C (@X0ER@X0C)epair Service (@X0ES@X0C)ell Armor (@X0EA@X0C)rmor Sales (@X0EQ@X0C)uit back to menu@X0F"
Newlines 2
Print " @X0A ", Trim(DGet(0, "CASH"), " "), "@X0E credits on hand - "
InputStr "@X0EPick a department, Soldier @X02> _", STRING004, 10, 1, "RSAQ", 0 + 8
If (STRING004 == "") Goto LABEL002
Select Case (STRING004)
Case "R"
INTEGER002 = DGet(2, "DEFENSE") - DGet(0, "ARMOR_D")
If (INTEGER002 < 1) Then
Backup 80
ClrEol
PrintLn "@X8CYou don't need any repairs!@X0F"
Delay (2 * 182) / 10
Goto LABEL002
Endif
Gosub LABEL003
Goto LABEL002
Case "S"
If (ToInteger(DGet(0, "ARMOR_N")) < 4) Then
Backup 80
ClrEol
PrintLn "@X8CWe aren't interested in that suit.@X0F"
Delay (2 * 182) / 10
Goto LABEL002
Endif
Gosub LABEL004
Goto LABEL002
Case "A"
If (DGet(0, "ARMOR_N") > 4) Then
Backup 80
ClrEol
PrintLn "@X8CYou might want to sell what you're wearing first...@X0F"
Delay (2 * 182) / 10
Goto LABEL002
Endif
Gosub LABEL005
Goto LABEL002
Case "Q"
Goto LABEL008
End Select
:LABEL003
Cls
PrintLn "@X0C ╓─╖ ╥─╖ ╓─╥─╖ ╓─╖ ╥─╖ ╥─╖ ╥─╖ ╥─╖ ╓─╖ ╥ ╥─╖@X07"
PrintLn "@X0C ╟─╢ ╟┬╜ ║ ║ ║ ║ ║ ╟┬╜ ╟┬╜ ╟─ ╟─╜ ╟─╢ ║ ╟┬╜@X07"
PrintLn "@X0C ╜ ╙ ╨ \ ╨ ╨ ╙─╜ ╨ \ ╨ \ ╨─╜ ╨ ╜ ╙ ╨ ╨ \@X07"
PrintLn "@X01 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡@X0F"
Newline
PrintLn " @X0BOur Armorers are the finest. For a low charge, we'll repair most types "
PrintLn " of soft, hard, and field effect armor. "
Newline
PrintLn " I see that you're eye balling that Marauder suit I'm checking for @X07"
PrintLn " @X0BLieutenant Rico. Nice suit, isn't it? Wish you had one just like @X07"
PrintLn " @X0Bit? It costs him a hundred grand every time he wants to wear it. @X07"
PrintLn " @X0BIt takes twenty-six man hours just to warm that suit up to ready @X07"
PrintLn " @X0Bcondition - and that's not counting the time to arm it.@X07"
Newline
PrintLn " @X0BLet's see what you've got there....@X07"
INTEGER005 = INTEGER002 * (DGet(0, "ARMOR_N") * 20)
INTEGER002 = DGet(2, "DEFENSE") - DGet(0, "ARMOR_D")
Newline
PrintLn " @X0EYou need@X0C ", INTEGER002, "@X0E points of damage repaired. @X0EAt a cost of:@X0A ", INTEGER005, "@X0F"
If (ToInteger(DGet(0, "CASH")) < INTEGER005) Then
PrintLn " @X0CYou don't have enough cash to fully repair...@X0F"
Newline
Delay (4 * 182) / 10
Endif
Newline
PrintLn " @X02(@X0DM@X02)@X0Aax out Repairs"
PrintLn " @X02(@X0CQ@X02)@X0Cuit"
Newline
InputStr " @X0AYour Choice Soldier @X02> _", STRING004, 10, 1, "MQ", 0 + 8
Select Case (STRING004)
Case "M"
DTop 2
DSeek 2, DGet(0, "ARMOR_N")
While (DGet(0, "CASH") >= DGet(0, "ARMOR_N") * 20) Do
INTEGER004 = DGet(2, "DEFENSE") - DGet(0, "ARMOR_D")
If (INTEGER004 < 1) Goto LABEL002
DPut 0, "ARMOR_D", DGet(0, "ARMOR_D") + 1
DPut 0, "CASH", DGet(0, "CASH") - DGet(0, "ARMOR_N") * 20
EndWhile
Goto LABEL002
Case "Q"
Goto LABEL002
End Select
:LABEL004
DTop 2
DSeek 2, DGet(0, "ARMOR_N")
INTEGER003 = DGet(2, "COST") * 0.67
Cls
PrintLn "@X0C ╓─╖ ╥─╖ ╓─╥─╖ ╓─╖ ╥─╖ ╓─╖ ╓─╖ ╖ ╥─╖ ╓─╖@X0F"
PrintLn "@X0C ╟─╢ ╟┬╜ ║ ║ ║ ║ ║ ╟┬╜ ╙─╖ ╟─╢ ║ ╟─ ╙─╖@X0F"
PrintLn "@X0C ╜ ╙ ╨ \ ╨ ╨ ╙─╜ ╨ \ ╙─╜ ╜ ╙ ╙─╜ ╨─╜ ╙─╜@X0F"
Newline
PrintLn "@X01 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡@X0F"
Newline
PrintLn " @X0BNice suit of ", Trim(DGet(0, "ARMOR_T"), " "), " armor you've got there. I'll give you,"
PrintLn " @X0B oh, say @X0B@X0A", INTEGER003, "@X0B for it.@X0F"
Newline
PrintLn " @X0ESound good to you?@X0F"
Newlines 2
InputStr "@X0B Sell Armor? @X02(@X0EY@X02/@X0CN@X02) @X0A> _", STRING004, 10, 1, "YN", 0 + 8
If (STRING004 == "") Goto LABEL004
Select Case (STRING004)
Case "Y"
DPut 0, "CASH", DGet(0, "CASH") + INTEGER003
Backup 80
ClrEol
PrintLn "@X0BYou now have@X0A ", Trim(DGet(0, "CASH"), " "), "@X0B credits@X0F"
Delay (2 * 182) / 10
DPut 0, "ARMOR_N", 0
DPut 0, "ARMOR_T", "NONE"
DPut 0, "ARMOR_D", 0
Goto LABEL002
Case "N"
Goto LABEL002
End Select
Goto LABEL004
:LABEL005
Cls
StartDisp 1
PrintLn "@X0C ╓─╖ ╥─╖ ╓─╥─╖ ╓─╖ ╥─╖ ╓─╖ ╓─╖ ╖ ╥─╖ ╓─╖@X0F"
PrintLn "@X0C ╟─╢ ╟┬╜ ║ ║ ║ ║ ║ ╟┬╜ ╙─╖ ╟─╢ ║ ╟─ ╙─╖@X0F"
PrintLn "@X0C ╜ ╙ ╨ \ ╨ ╨ ╙─╜ ╨ \ ╙─╜ ╜ ╙ ╙─╜ ╨─╜ ╙─╜@X0F", " @X0EYou have @X0A", Trim(DGet(0, "CASH"), " "), "@X0E credits."
PrintLn "@X01 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡@X0F"
PrintLn " @X0EItem # @X0BDESCRIPTION @X0CDEFENSE @X0ACOST@X0F"
DTop 2
:LABEL006
If (DEof(2)) Goto LABEL007
PrintLn "@X0E@POS:5@", DGet(2, "NUMBER"), "@X0B@POS:13@", DGet(2, "DESCRIPT"), "@X0C@POS:36@", DGet(2, "DEFENSE"), "@POS:43@@X0A", DGet(2, "COST")
DSkip 2, 1
Goto LABEL006
:LABEL007
Newline
If (DGet(0, "ARMOR_N") > 0) PrintLn "You are currently wearing:@X0B ", DGet(0, "ARMOR_T") , "@X0F"
Newline
InputStr " @X0AYour Choice Soldier @X0E(@X0CQ@X0E)@X0Cuit @X02> _", STRING004, 10, 2, "0123456789Q", 0 + 8
If (STRING004 == "Q") Goto LABEL002
DTop 2
DSeek 2, STRING004
If (ToInteger(DGet(0, "CASH")) < ToInteger(DGet(2, "COST"))) Then
Backup 80
ClrEol
PrintLn "@X0BYou only have@X0A ", Trim(DGet(0, "CASH"), " "), "@X0B credits@X0F"
Delay (2 * 182) / 10
Goto LABEL002
Endif
DPut 0, "CASH", DGet(0, "CASH") - DGet(2, "COST")
DPut 0, "ARMOR_N", ToInteger(DGet(2, "NUMBER"))
DPut 0, "ARMOR_T", DGet(2, "DESCRIPT")
DPut 0, "ARMOR_D", DGet(2, "DEFENSE")
Goto LABEL002
:LABEL008
DCloseAll
Delete PPEPath() + STRING003 + ".NDX"
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 4 Cls
; 5 ClrEol
; 42 Goto
; 14 Let
; 1 Print
; 47 PrintLn
; 26 If
; 1 StartDisp
; 1 Delete
; 4 InputStr
; 3 Gosub
; 6 Delay
; 18 Newline
; 2 Newlines
; 5 Backup
; 1 EndFunc
; 2 DOpen
; 2 DCloseAll
; 1 DnCreate
; 5 DTop
; 1 DGo
; 1 DSkip
; 4 DSeek
; 10 DPut
;
;
; ■ Functions used :
;
; 11 *
; 6 /
; 15 +
; 6 -
; 15 ==
; 5 <
; 4 >
; 1 >=
; 16 !
; 6 Trim()
; 1 Random()
; 2 String()
; 4 PPEPath()
; 2 PcbNode()
; 1 GetEnv()
; 6 ToInteger()
; 1 DEof()
; 1 DRecNo()
; 44 DGet()
;
;------------------------------------------------------------------------------
;
; Analysis flags : No flag
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 0 For/Next
; 1 While/EndWhile
; 6 If/Then or If/Then/Else
; 3 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------